package com.itany.corejava.code14_lambda;

/**
 * @author MissChen
 * @date 2024年03月25日 11:19
 */
public class Test01_基本用法 {
    public static void main(String[] args) {
        // SomeInterface someInterface=new SomeInterface() {
        //     @Override
        //     public String test(String s1, String s2) {
        //         return s1+s2;
        //     }
        // };
        // Lambda表达式用法：可以理解为简化匿名内部类
        // (参数)->{方法体}

        // 当没有参数时, 直接写小括号() 即可
        // 当只有一个参数的时候, 小括号() 可以省略
        // 当方法体中如果只有一行代码, 那么大括号{} 可以省略
        // 当方法体中如果只有一行代码, 并且是return 语句, 那么大括号{} 与return 关键字都省略

        SomeInterface some2=(s1,s2)->s1+s2;
        System.out.println(some2.test("aa","bb"));

        SomeInterface2 some3=new SomeInterface2() {
            @Override
            public void test(String s1) {
                System.out.println(s1);
            }
        };

        SomeInterface2 some4=s1-> System.out.println(s1);
        some4.test("aaa");

        SomeInterface3 some5=new SomeInterface3() {
            @Override
            public void test() {
                System.out.println("Hello World");
            }
        };
        SomeInterface3 some6=()->System.out.println("Hello World");
        some6.test();




    }
}
interface SomeInterface{
    String test(String s1,String s2);
}
interface SomeInterface2{
    void test(String s1);
}
interface SomeInterface3{
    void test();
}